<%@ page import="cn.kgc.javaweb.entity.User" %>
<%@ page import="java.util.Arrays" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>使用el表达式获取复杂类型的值</title>
</head>
<body>
<%--
        域对象中存储对象类型的数据
        User   user
--%>
<%
    User user = new User();
    user.setAge(30);
    user.setUsername("tom");
    //设置值到request域对象
    request.setAttribute("user", user);

    // 将数组类型的值 存入作用域对象
    String[]  strs = {"aa","bb","cc"};
    pageContext.setAttribute("strs", strs);
    //将集合类型的值 存入作用域对象
    List<String> list = Arrays.asList(strs);
    pageContext.setAttribute("list", list);

    //将map集合类型的值 存入作用域
    HashMap<String, Object> map = new HashMap<>();
    map.put("username", "tom");
    map.put("password", "123456");

    pageContext.setAttribute("map", map);

    //域对象中存储list集合类型的值  泛型是自定义对象类型

    ArrayList<User> users = new ArrayList<>();
    users.add(user);
    users.add(user);
    users.add(user);
    pageContext.setAttribute("users", users);

%>

<h1>从域对象中获取一个对象类型的属性值</h1>
<p>user:${user}</p>
<%--
  .username   代表的并不是对象中的属性名   对应的是属性名对应的get方法名  user.username    getUsername
  .age
--%>
<p>user.name:${user.username}</p>
<%--<p>user.name:${user.uname}</p>--%>
<p>user.age:${user.age}</p>

<h1>从域对象中获取一个数组类型的值</h1>
<p>strs:${strs}</p>
<p>strs[0]:${strs[0]}</p>
<p>strs[1]:${strs[1]}</p>
<p>strs[2]:${strs[2]}</p>

<h1>从域对象中获取一个集合类型的值</h1>
<p>list:${list}</p>
<p>list[0]:${list[0]}</p>
<p>list[1]:${list[1]}</p>
<p>list[2]:${list[2]}</p>


<h1>从域对象中获取一个map集合类型的值</h1>
<p>map:${map}</p>
<p>map[username]:${map["username"]}</p>
<p>map[password]:${map["password"]}</p>

<h1>从域对象中获取一个集合类型的值泛型是自定义类型</h1>
<p>users:${users}</p>
<p>users[0]:${users[0]}</p>
<p>users[0].username:${users[0].username}</p>
<p>users[0].age:${users[0].age}</p>

<p>users[1].username:${users[1].username}</p>
<p>users[1].age:${users[1].age}</p>

</body>
</html>
